package bibliOnline.util;

import java.io.Serializable;

/**
 * Implementa un campo contenente un informazione/dato e il relativo identificatore.
 * 
 * @author Luca Piacentini
 */
public class Message implements Serializable
{
    /**
     * Definisce il nome della proprietà/attributo "id". Utile per l'encoding 
     * in formato JSON.
     */
    public static final String PROP_ID = "id";
    
    /** String che identifica l'informazione contenuta nel campo. */
    private String id;
    
    /**
     * Definisce il nome della proprietà/attributo "value". Utile per l'encoding 
     * in formato JSON.
     */
    public static final String PROP_VALUE = "value";
    
    /** String che contiene l'informazione vera e propria */
    private String value;

     
    
    /**
     * Costruttore vuoto
     */
    public Message() {
    }
    
    /**
     * Costruttore che inizializza l'informazione e il relativo identificatore.
     * 
     * @param id String che identifica l'informazione contenuta nel campo.
     * @param value String che contiene l'informazione vera e propria.
     * 
     * @see String
     */
    public Message(String id, String value)
    {
        this.id = id;
        this.value = value;
    }

    /**
     * Ritorna l'identificatore che definisce l'identità dell'informazione 
     * contenuta nel campo.
     * 
     * @return String che identifica l'informazione contenuta nel campo.
     * 
     * @see String
     */
    public String getId()
    {
        return id;
    }

    /**
     * Setta l'identificatore che definisce l'identità dell'informazione 
     * contenuta nel campo.
     * 
     * @param id String che identifica l'informazione contenuta nel campo.
     * 
     * @see String
     */
    public void setId(String id)
    {
        this.id = id;
    }

    /**
     * Ritorna l'informazione contenuta nel campo.
     * 
     * @return String che contiene l'informazione vera e propria.
     * 
     * @see String
     */  
    public String getValue()
    {
        return value;
    }

    /**
     * Setta l'informazione contenuta nel campo.
     * 
     * @param value String che contiene l'informazione vera e propria
     * 
     * @see String
     */
    public void setValue(String value)
    {
        this.value = value;
    }
}
